Method for training of subspace coded gaussian models

ABSTRACT

A method for compressing multiple dimensional gaussian distributions with diagonal covariance matrixes includes clustering a plurality of gaussian distributions in a multiplicity of clusters for each dimension. Each cluster can be represented by a centroid having a mean and a variance. A total decrease in likelihood of a training dataset is minimized for the representation of the plurality of gaussian distributions.

BACKGROUND OF THE INVENTION

[0001] The present invention relates to classifiers used in computer processing. More particularly, the present invention relates to compression of gaussian models used in computer processing such as used in speech recognition.

[0002] A speech recognition system receives a speech signal and attempts to decode the speech signal to identify a string of words represented by the speech signal. Conventional speech recognizers include, among other things, an acoustic model and a language model formed usually from training data. The acoustic model models the acoustic features of speech units (such as phonemes) based on the training data. The language model models word order as found in the training data.

[0003] When the speech signal is received for speech recognition, acoustic features are extracted from the speech signal and compared against the models in the acoustic model to identify speech units contained in the speech signal. Potential words are compared against the language model to determine the probability that a word was spoken, given its history (or context).

[0004] It is often desirable to design speech recognizers so that they may be used with computer systems with less processing power and/or less memory capabilities without losing speech recognition accuracy. One significant memory intensive portion of a speech recognition system is the storing of the acoustic model. In a Hidden Markov Model (HMM) based speech recognition system, the acoustic model commonly consists of tens of thousands of multi-dimensional gaussian probability distributions with diagonal covariance matrices. For example, the gaussian distributions can each be 33 dimensions. Each dimension requires a mean and a variance. Therefore, if a model has 40,000 gaussians of 33 dimensions, each having a mean and a variance, which is typically stored as a four byte floating point value, the acoustic model would take over ten megabytes to store.

[0005] Storing each mean with a byte and each variance with a byte can be done with scalar quantization and often results in no degradation in error rate and a factor of 4 compression (the model in the example above would be 2.5 MB). One such type of scalar quantization is linear scalar quantization, which can be done by finding the maximum and minimum value of each parameter and linearly quantizing the points in between.

[0006] Known clustering techniques can be used to compress the acoustic model so that it takes less memory to store. Generally, this technique is referred to as subspace coding and involves grouping different components together Typically, the representative gaussian distributions are stored in a codebook for each dimension. The codebooks are stored to form the acoustic model and accessed during speech recognition to process an input signal. In view that representative gaussians are used, some accuracy will be lost for the benefit of a smaller acoustic model. The further the model is compressed, the more accuracy will be degraded. Current techniques use Euclidean distance which significantly reduce accuracy as soon as more than one component is grouped together.

[0007] An improved method for compressing gaussian distributions, while maintaining improved accuracy, is always beneficial. A smaller yet more accurate model is particularly beneficial to speech recognition; however, other applications may also yield improved performance.

SUMMARY OF THE INVENTION

[0008] The present invention provides a method for compressing multiple dimensional gaussian distributions with diagonal covariance matrices that includes clustering a plurality of gaussian distributions in a multiplicity of clusters for each dimension. Each cluster can be represented by a centroid having a mean and a variance. A total decrease in likelihood of a training dataset is minimized for the representation of the plurality of gaussian distributions. In the embodiment illustrated, a metric having a mathematical measure of closeness is minimized and used to assign gaussian distributions. Whereas a Euclidean measure is often used in sub-space coding, a non-Euclidean measure can provide a better indication of closeness between a centroid and a gaussian distribution.

[0009] In a further embodiment where K Gaussians of dimension D and diagonal covariance matrices are provided, gaussian k can be represented with a mean vector m_(k)=(m_(k)[1], m_(k)[2], . . . , m_(k)[D]) and variance vector υ_(k)=(υ_(k)[1], υ_(k)[2], . . . , υ_(k)[D]). The mean and variance of each centroid can be formed of weighted averages of the Gaussians that belong to that cluster. A codebook C_(d) is provided for each dimension D, {C₁, C₂, . . . , C_(D)}, where each codeword vector n in codebook C_(d) is a two-dimensional vector (μ_(n)[d], σ_(n)[d]) containing a mean and a variance. A mean of each centroid can be calculated using an equation of a form: ${{\mu_{n}\lbrack d\rbrack} = \frac{\sum\limits_{k \in V_{n}}{C_{k}{m_{k}\lbrack d\rbrack}}}{\sum\limits_{k \in V_{n}}C_{k}}},$

[0010] while a variance of each centroid can be calculated using a equation of a form: ${{\sigma_{n}^{2}\lbrack d\rbrack} = \frac{\sum\limits_{k \in V_{n}}{C_{k}\left\lbrack {\left( {\upsilon_{k}\lbrack d\rbrack} \right)^{2} + \left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}} \right\rbrack}}{\sum\limits_{k \in V_{n}}C_{k}}},$

[0011] wherein C_(k) is the “counts” of Gaussian k as seen in training, and V_(n) is the plurality of Gaussians that are in cluster n. Individual gaussians can be assigned to clusters using a measure of closeness of a form: ${S_{d}\left( {k,n} \right)} = {{2\quad \ln \quad {\sigma_{n}\lbrack d\rbrack}} + \frac{\upsilon_{k}^{2}\lbrack d\rbrack}{\sigma_{n}^{2}\lbrack d\rbrack} + {\frac{\left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}}{\sigma_{n}^{2}\lbrack d\rbrack}.}}$

BRIEF DESCRIPTION OF THE DRAWINGS

[0012]FIG. 1 is one exemplary embodiment of an environment in which the present invention can be used.

[0013]FIG. 2 is a block diagram of a speech recognition system in accordance with one embodiment of the present invention.

[0014]FIG. 3A is a plot of gaussian distributions formed in clusters.

[0015]FIG. 3B is a schematic diagram of a codebook having means and variances for one dimension.

[0016]FIG. 3C is a schematic diagram of a codebook having means and variances for two dimension.

[0017]FIG. 4 is a flow chart illustrating a method of clustering and subspace coding.

[0018]FIG. 5 is a flow chart illustrating a method of clustering with more detail.

[0019]FIG. 6 is two-dimensional array of combinations of total measures of closeness for 33 dimensions.

[0020]FIG. 7A-7T illustrate an exemplary series of steps showing subspace coding of 33 dimensions.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

[0021] One aspect of the present invention relates to forming subspace coded gaussian models of smaller size and improved accuracy. However, prior to discussing this and other aspects in detail, a description of one exemplary computing environment and computer-implemented application in which the present invention can be used will be provided.

[0022]FIG. 1 illustrates an example of a suitable computing system environment 100 on which the invention may be implemented. The computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 100.

[0023] The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.

[0024] The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices. Tasks performed by the programs and modules are described below and with the aid of figures. Those skilled in the art can implement the description and figures as processor executable instructions, which can be written on any form of a computer readable media.

[0025] With reference to FIG. 1, an exemplary system for implementing the invention includes a general purpose computing device in the form of a computer 110. Components of computer 110 may include, but are not limited to, a processing unit 120, a system memory 130, and a system bus 121 that couples various system components including the system memory to the processing unit 120. The system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.

[0026] Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 110. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.

[0027] The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation, FIG. 1 illustrates operating system 134, application programs 135, other program modules 136, and program data 137.

[0028] The computer 110 may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only, FIG. 1 illustrates a hard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 151 that reads from or writes to a removable, nonvolatile magnetic disk 152, and an optical disk drive 155 that reads from or writes to a removable, nonvolatile optical disk 156 such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140, and magnetic disk drive 151 and optical disk drive 155 are typically connected to the system bus 121 by a removable memory interface, such as interface 150.

[0029] The drives and their associated computer storage media discussed above and illustrated in FIG. 1, provide storage of computer readable instructions, data structures, program modules and other data for the computer 110. In FIG. 1, for example, hard disk drive 141 is illustrated as storing operating system 144, application programs 145, other program modules 146, and program data 147. Note that these components can either be the same as or different from operating system 134, application programs 135, other program modules 136, and program data 137. Operating system 144, application programs 145, other program modules 146, and program data 147 are given different numbers here to illustrate that, at a minimum, they are different copies.

[0030] A user may enter commands and information into the computer 110 through input devices such as a keyboard 162, a microphone 163, and a pointing device 161, such as a mouse, trackball or touch pad. Other input devices (not shown) may include a joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 120 through a user input interface 160 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190. In addition to the monitor, computers may also include other peripheral output devices such as speakers 197 and printer 196, which may be connected through an output peripheral interface 195.

[0031] The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110. The logical connections depicted in FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.

[0032] When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation, FIG. 1 illustrates remote application programs 185 as residing on remote computer 180. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.

[0033]FIG. 2 illustrates a block diagram of an exemplary speech recognition system having an acoustic model benefiting from subspace coding of gaussian distributions of the present invention. Although particularly beneficial for forming a compressed and accurate acoustic model for speech recognition, thereby comprising one aspect of the present invention, the techniques described below for forming the compressed model can be used in other applications.

[0034] In FIG. 2, a speaker 400 speaks into a microphone 404. The audio signals detected by microphone 404 are converted into electrical signals that are provided to analog-to-digital (A-to-D) converter 406.

[0035] A-to-D converter 406 converts the analog signal from microphone 404 into a series of digital values. In several embodiments, A-to-D converter 406 samples the analog signal at 16 kHz and 16 bits per sample, thereby creating 32 kilobytes of speech data per second. These digital values are provided to a frame constructor 407, which, in one embodiment, groups the values into 25 millisecond frames that start 10 milliseconds apart.

[0036] The frames of data created by frame constructor 407 are provided to feature extractor 408, which extracts a feature from each frame. Examples of feature extraction modules include modules for performing Linear Predictive Coding (LPC), LPC derived cepstrum, Perceptive Linear Prediction (PLP), Auditory model feature extraction, and Mel-Frequency Cepstrum Coefficients (MFCC) feature extraction. Note that the invention is not limited to these feature extraction modules and that other modules may be used within the context of the present invention.

[0037] The feature extraction module 408 produces a stream of feature vectors that are each associated with a frame of the speech signal. This stream of feature vectors is provided to a decoder 412, which identifies a most likely sequence of words based on the stream of feature vectors, a lexicon 414, a language model 416 (for example, based on an N-gram, context-free grammars, or hybrids thereof), and the acoustic model 418. The particular method used for decoding is not important to the present invention. However, aspects of the present invention include modifications to the acoustic model 418 and the use thereof.

[0038] The most probable sequence of hypothesis words can be provided to an optional confidence measure module 420. Confidence measure module 420 identifies which words are most likely to have been improperly identified by the speech recognizer. This can be based in part on a secondary acoustic model (not shown). Confidence measure module 420 then provides the sequence of hypothesis words to an output module 422 along with identifiers indicating which words may have been improperly identified. Those skilled in the art will recognize that confidence measure module 420 is not necessary for the practice of the present invention.

[0039] During training, a speech signal corresponding to training text 426 is input to decoder 412, along with a lexical transcription of the training text 426. Trainer 424 trains acoustic model 418 based on the training inputs. An aspect of the present invention includes forming a compressed acoustic model 418 with improved accuracy.

[0040] Before describing the subspace grouping or clustering technique of the present invention, it may be helpful to review a prior coding technique used for the acoustic model 418. As discussed in the background section, a typical acoustic model is formed from and represents tens of thousands of multidimensional gaussian probability distributions. For instance, a common acoustic model includes many 33 dimensional diagonal gaussian probability distributions. In this embodiment, each gaussian has 33 means (“m”) and 33 variances (“v”), one for each dimension. Rather than maintaining all of the gaussian distributions, the gaussian distributions are clustered or grouped in a manner so as to yield representative gaussian distributions, also referred to herein as “centroids”. FIG. 3A schematically illustrates partial clustering for one dimension. In FIG. 3A, each of the points represent a gaussian distribution having a mean and a variance, wherein in FIG. 3A mean values are referenced to a horizontal axis 500, while variance values are referenced relative to a vertical axis 502. Clustering involves grouping similar gaussian distributions together, which is represented in FIG. 3A as dashed circles 504. In FIG. 3A, four clusters are illustrated and denoted as “zero”, “one”, “two”, and “three”.

[0041] As described above, a centroid is obtained to represent the cluster of gaussian distributions. Each centroid thus includes a corresponding mean and variance. One coding technique includes representing each centroid (each mean and each variance) with a single number, which can then be used to reference, and thereby, obtain the mean and variance values. This technique is a simple form of subspace quantization and involves forming a codebook 520, schematically illustrated in FIG. 3B, which can be for purposes of the present invention a collection of centroids, or means or variances thereof separately. As described above, each centroid has a corresponding mean and variance which are stored in the codebook as columns 522 and 524, respectively. A third column 526 comprises a reference identifier, which corresponds to the clusters formed in the plot of FIG. 3. A codebook can have any number of entries (codewords), for example, 0 to 15 (16 entries), or 0 to 255 (256 entries). The plot of FIG. 3A represents the first four clusters and corresponding centroids. It should be noted one could also code each mean and each variance separately.

[0042] The codebook 520 stores the mean and variance used during processing, referenced to the third column 526. For example, if a gaussian mean is represented by the number 2, the codebook would indicate the mean of 1.40374 should be used, whereas if a gaussian variance is represented by the number 3, the codebook would indicate that the value of 0.0053 for the variance should be used.

[0043] To further reduce the size of the acoustic model, a technique of subspace coding can be used. For subspace coding, several dimensions are represented together. For example, it may be possible to group dimensions 1 and 2 together and represent the corresponding means and variances with a signal number from 0-255 in a manner similar to that described above with one dimension. FIG. 3C illustrates a codebook 540 where dimensions 1 and 3 are grouped together, columns 542 and 544 represent the mean and variance for dimension 1, while columns 548 and 550 represent the mean and variance for dimension 3 all of which referenced to an identifier 546. By grouping two dimensions together, the model can be reduced by approximately a factor of two. This technique is referred to as subspace coding because the original model may have a 33 dimensional space, while the reduced model would have a 17 dimensional space (16 dimensions grouped together in pairs with one remaining on its own), which is a subspace of the original 33 dimensional space. It should also be noted that a further reduction by a factor of two is achieved by using a codebook such as illustrated in FIG. 3C where a single number of column 546 represents two means and two variances.

[0044] Aspects of the present invention include estimating each codebook independently in such a way that the total likelihood of the training data used in the HMM decreases the least. Generally, this includes calculating a mean and a variance for each centroid to represent a plurality of gaussian distributions wherein a total decrease in likelihood is minimized for the representation of the plurality of gaussian distributions. In the illustrative embodiment, gaussian distributions are clustered using a metric having a mathematical measure of closeness to assign gaussian distributions, wherein the metric is minimized. Other aspects include new calculations for obtaining a centroid for each cluster and a new measure for clustering and subspace coding.

[0045] In a system with K Gaussians of dimension D and diagonal covariance matrices, Gaussian k can be represented with a mean vector m_(k)=(m_(k)[1], m_(k)[2], . . . , m_(k)[D]) and variance vector υ_(k)=(υ_(k)[1], υ_(k)[2], . . . , υ_(k)[D]).

[0046] With a system architecture consisting of D codebooks {C₁, C₂, . . . , C_(D)} containing N=2′ codeword vectors each, then each codeword vector n in codebook C_(d) is a two-dimensional vector (μ_(n)[d], σ_(n)[d]) containing a mean and a variance.

[0047] The following provides codebook estimation. Each codebook is estimated independently in such a way that the total likelihood of the training data used in the HMM decreases the least. The contribution to the total log-likelihood of dimension d for Gaussian k is given by $\begin{matrix} {{L_{k}\lbrack d\rbrack} = {- {\sum\limits_{t = 1}^{T}{{\xi_{t}(k)}\left\lbrack {{\frac{1}{2}\quad \ln \quad \left( {2\quad \pi} \right)} + {\ln \quad {\upsilon_{k}\lbrack d\rbrack}} + \frac{\left( {{x_{t}\lbrack d\rbrack} - {m_{k}\lbrack d\rbrack}} \right)^{2}}{2\quad {\upsilon_{k}^{2}\lbrack d\rbrack}}} \right\rbrack}}}} \\ {= {{- \frac{C_{k}\quad {\ln \left( {2\quad \pi} \right)}}{2}} - {C_{k}\quad \ln \quad {\upsilon_{k}\lbrack d\rbrack}} - {\frac{1}{2\quad {\upsilon_{k}^{2}\lbrack d\rbrack}}{\sum\limits_{t = 1}^{T}{{\xi_{t}(k)}\left( {{x_{t}\lbrack d\rbrack} - {m_{k}\lbrack d\rbrack}} \right)^{2}}}}}} \\ {= {{- \frac{C_{k}\quad {\ln \left( {2\quad \pi} \right)}}{2}} - {C_{k}\quad \ln \quad {\upsilon_{k}\lbrack d\rbrack}} - \frac{C_{k}}{2}}} \end{matrix}$

[0048] where ξ₁(k) is the posterior probability of vector x₁ being in Gaussian k as obtained through the Baum-Welch algorithm, and $C_{k} = {\sum\limits_{t = 1}^{T}{\xi_{t}(k)}}$

[0049] is the “counts” of Gaussian k as seen in training.

[0050] With (m_(k)[d], υ_(k)[d]) by (μ_(n)[d], [d]) quantized, the new (lower) likelihood will be given by $\begin{matrix} {{L_{k}^{\prime}\lbrack d\rbrack} = {{- \frac{C_{k}\quad {\ln \left( {2\quad \pi} \right)}}{2}} - {C_{k}\quad \ln \quad {\sigma_{n}\lbrack d\rbrack}} - {\frac{1}{2\quad {\sigma_{n}^{2}\lbrack d\rbrack}}{\sum\limits_{t = 1}^{T}{{\xi_{t}(k)}\left( {{x_{t}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}}}}}} \\ {= {{- \frac{C_{k}\quad {\ln \left( {2\quad \pi} \right)}}{2}} - {C_{k}\quad \ln \quad {\sigma_{n}\lbrack d\rbrack}} -}} \\ {{\frac{1}{2\quad {\sigma_{n}^{2}\lbrack d\rbrack}}{\sum\limits_{t = 1}^{T}{{\xi_{t}(k)}\left( {\left( {{x_{t}\lbrack d\rbrack} - {m_{k}\lbrack d\rbrack}} \right) + \left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)} \right)^{2}}}}} \\ {= {{- \frac{C_{k}\quad {\ln \left( {2\quad \pi} \right)}}{2}} - {C_{k}\quad \ln \quad {\sigma_{n}\lbrack d\rbrack}} -}} \\ {{\frac{1}{2\quad {\sigma_{n}^{2}\lbrack d\rbrack}}{\sum\limits_{t = 1}^{T}{{\xi_{t}(k)}\left( {\left( {{x_{t}\lbrack d\rbrack} - {m_{k}\lbrack d\rbrack}} \right)^{2} + \left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}} \right)}}}} \\ {= {{- \frac{C_{k}\quad {\ln \left( {2\quad \pi} \right)}}{2}} - {C_{k}\quad \ln \quad {\sigma_{n}\lbrack d\rbrack}} - \frac{C_{k}{\upsilon_{k}^{2}\lbrack d\rbrack}}{2\quad {\sigma_{n}^{2}\lbrack d\rbrack}} - \frac{{C_{k}\left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)}^{2}}{2\quad {\sigma_{n}^{2}\lbrack d\rbrack}}}} \end{matrix}$

[0051] so that the decrease in likelihood is given by $\begin{matrix} {{{L_{k}\lbrack d\rbrack} - {L_{k}^{\prime}\lbrack d\rbrack}} = {{- \frac{C_{k}}{2}} - {C_{k}\quad \ln \quad {\upsilon_{k}\lbrack d\rbrack}} + {C_{k}\quad \ln \quad {\sigma_{n}\lbrack d\rbrack}} +}} \\ {{\frac{C_{k}{\upsilon_{k}^{2}\lbrack d\rbrack}}{2\quad {\sigma_{n}^{2}\lbrack d\rbrack}} + \frac{{C_{k}\left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)}^{2}}{2\quad {\sigma_{n}^{2}\lbrack d\rbrack}}}} \\ {= {{- \frac{C_{k}}{2}} - {C_{k}\quad \ln \quad {\upsilon_{k}\lbrack d\rbrack}} + {\frac{C_{k}}{2}{S_{d}\left( {k,n} \right)}}}} \end{matrix}$

[0052] where S_(d)(k,n), defined as the measure of closeness between Gaussian k and codeword n for dimension d, is given by $\begin{matrix} {{S_{d}\left( {k,n} \right)} = {{2\quad \ln \quad {\sigma_{n}\lbrack d\rbrack}} + \frac{\upsilon_{k}^{2}\lbrack d\rbrack}{\sigma_{n}^{2}\lbrack d\rbrack} + \frac{\left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}}{\sigma_{n}^{2}\lbrack d\rbrack}}} & {{EQ}.\quad 1} \end{matrix}$

[0053] The one-dimensional Gaussian (m_(k)[d], υ_(k)[d]) is then quantized to (μ_(n)[d], σ_(n)[d]) by choosing n that minimizes such measure $n = {\underset{l}{\arg \quad \min}\quad {S_{d}\left( {k,l} \right)}}$

[0054] In order to estimate μ_(n)[d] and σ_(n)[d], the total decrease in likelihood is minimized ${\sum\limits_{k = 1}^{K}\left( {{L_{k}\lbrack d\rbrack} - {L_{k}^{\prime}\lbrack d\rbrack}} \right)} = {{{- \frac{1}{2}}{\sum\limits_{k = 1}^{K}C_{k}}} - {\sum\limits_{k = 1}^{K}{C_{k}\quad \ln \quad {\upsilon_{k}\lbrack d\rbrack}}} + {\frac{1}{2}{\sum\limits_{k = 1}^{K}{C_{k}\quad {\min\limits_{n}\quad {S_{d}\left( {k,n} \right)}}}}}}$

[0055] which can be obtained by taking the derivative and equating to 0: $\begin{matrix} {{\mu_{n}\lbrack d\rbrack} = \frac{\sum\limits_{k \in V_{n}}{C_{k}{m_{k}\lbrack d\rbrack}}}{\sum\limits_{k \in V_{n}}C_{k}}} & {{EQ}.\quad 2} \\ {{\sigma_{n}^{2}\lbrack d\rbrack} = \frac{\sum\limits_{k \in V_{n}}{C_{k}\left\lbrack {\left( {\upsilon_{k}\lbrack d\rbrack} \right)^{2} + \left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}} \right\rbrack}}{\sum\limits_{k \in V_{n}}C_{k}}} & {{EQ}.\quad 3} \end{matrix}$

[0056] where V_(n) is the set of Gaussians that are in cluster n.

[0057] These equations can be extended to multiple dimensions by summing S_(d)(k,n) in equation 1 across multiple dimensions d. Equations 2 and 3 remain the same.

[0058] It is important to note that the “optimal” centroid of a cluster is not the arithmetic average as in traditional VQ (vector quantization), but rather some weighted averages as indicated by equations 2 and 3. In addition, the “optimal” distance measure (EQ. 1) is not Euclidean.

[0059] Stated another way, equations 2 and 3 differ from the standard derivation in that the averages are weighted by the number of occurrences of each gaussian in training (i.e., the number of training vectors that matched that gaussian), and in addition there is a correction factor that increases the variance estimate corresponding to the error in quantizing the gaussian means. Instead of equation 1, a Euclidean distance comprising the square of the difference of the means (vector mean and cluster centroid mean) plus the square of the difference of the variances (vector variance and cluster centroid variance) would be used. However, the Euclidean distance does not attempt to minimize the total decrease in likelihood.

[0060] In short, equations 2 and 3 provide the mean and variance values for a given centroid, while equation 1 is used to ascertain the gaussian distributions for each cluster.

[0061]FIG. 4 illustrates steps for performing clustering and also steps for performing subspace coding or grouping. The method begins at step 600. At step 602, the gaussian distributions of each dimension are clustered into a selected number of clusters with each cluster having a representative or calculated centroid. As stated above, equations 2 and 3 calculate elements of the centroid, while equation 1 is a measure for determining which gaussian distribution belongs with which cluster. There are various well known standard techniques for clustering. Generally, one must determine how to initialize the clusters, and then, how to add clusters, if one did not initially begin with the desired number of clusters. K-means clustering can be used at this step. For example, one method includes starting with only one cluster containing all of the gaussian distributions, and then periodically split all the clusters until the desired number of clusters is reached. Alternatively, one can begin with the desired number of clusters and then assign probability distributions equally among the initial clusters.

[0062]FIG. 5 illustrates a suitable method 650 for clustering. At step 652, the initial clusters are determined (either one, some or the total desired number). At this step, a centroid is chosen to represent each cluster.

[0063] At step 654, using equation 1, probability distributions are assigned to the clusters. In particular, each Gaussian distribution is compared to each centroid, and is assigned to that cluster if it is the “closest” as determined by the measure of equation 1. A total measure S_(dT) for each cluster is also calculated by summing the individual measures for each gaussian to the centroid for all the gaussians assigned to the corresponding cluster. In addition, the total dimension measure ΣS_(dT) comprising the sum of all of the individual total measures of each cluster is also calculated.

[0064] At step 656, a new centroid is calculated for each cluster using equations 2 and 3 in view of the gaussians that were assigned to the corresponding cluster at step 654.

[0065] With new centroids calculated, the gaussian distributions can be once again compared to the new centroids to see if any should be reassigned at step 658. Essentially, this involves repeating the calculations of step 654, and if the total dimension measure for all the clusters drops significantly (i.e. below a selected threshold) due to reassignment of the gaussian distributions, the algorithm returns to step 656. However, if the total dimension measure does not drop significantly, the method continues to step 660.

[0066] At step 660, if the number of clusters present equals the desired number of clusters, clustering is complete, otherwise, some or all of the clusters are split in two at step 662 and the method returns to step 654.

[0067] Besides forming clusters based on only the gaussian distributions of one dimension (steps 602 and 604), the same technique can be applied to each combination or permutation for the set of dimensions (e.g., dimension 0 and dimension 1, dimension 0 and dimension 2, dimension 0 and dimension 3, etc.). Steps 606 and 608 in FIG. 4 represent the steps of the clustering and the cost determination method of FIG. 5 for combinations of dimensions. At this stage, a group is comprised of two dimensions. At step 610, the process is repeated until all the various combinations have been calculated. Pictorially, this can be represented as in FIG. 6 where a two-dimensional array represents the total dimension measures for each combination of dimensions. In particular, the diagonal elements (ΣS_(dT 0,0)) correspond to the clustering and cost determinations for a single dimension (i.e. steps 602 and 604), while the off-diagonal elements (ΣS_(dT 0,2)) correspond to clustering and cost determination for merging two dimensions.

[0068] At step 612, the two dimensions with the smallest increase in cost are grouped together. The smallest increase in cost is determined by the following formula.

Cost of Merging=Cost[A&B]−Cost[A]−Cost[B]

[0069] Group A & Group B

[0070] wherein the first iteration, A and B represent a single dimension (e.g. 0, 1, 2, etc.); however, in later iterations A and B may also represent already merged dimensions (e.g. 1 and 26, 2 and 13, etc.).

[0071] Referring back to FIG. 6, in the first iteration, Cost[A & B] is one of the off-diagonal elements, while Cost[A] and Cost[B] are each obtained from the diagonal elements.

[0072] Having merged two dimensions together at step 612, the total number of dimensions has been reduced by 1 (e.g. from 33 dimensions to 32 dimensions).

[0073] If the desired reduction in dimensions has not been reached at step 614, the process returns to step 606 where clustering and cost determinations are calculated based on the newly formed group with respect to each of the other dimensions. Pictorially, this can be represented as a two dimensional array, reduced by one row and one column (i.e. 32 by 32), where a new diagonal element represents the cost of the newly formed group and the off-diagonal elements have been augmented to reflect various combinations with the other dimensions. Once again, at step 608, the two groups with the smallest increase in cost are merged based on calculation of equation 1 above. Further iterations of steps 606, 608, 610, 612 and 614 are repeated until the desired number of dimensions has been achieved through grouping of the original dimensions. Subspace coding is complete at step 616.

[0074]FIGS. 7A-7T illustrate pictorially how the reduction in dimensions can occur. In FIG. 7A, each dimension is listed and this state corresponds to the original dimensions (e.g. 33 dimensions) and just prior to merging at step 612 in FIG. 4.

[0075]FIG. 7B illustrates where two dimensions, dimension 23 and dimension 25, have been chosen based on the smallest increase in cost at step 612. Similarly, FIGS. 7C-7J illustrate further iterations through steps 606, 608, 610, 612 of FIG. 4 where groupings are formed based on two of the original dimensions.

[0076]FIG. 7K illustrates where two prior formed groups have been formed into a larger group. Similarly, FIG. 7N illustrate yet another iteration where two prior groups are formed in a larger group.

[0077]FIG. 7T illustrates completion of the final iteration when the subspace coding has yielded 14 dimensions from the original 33 dimensions.

[0078] In a speech recognition system, the codebooks are stored as part of the acoustic model 418 and used during speech recognition; however, the storage and use of codebooks do not form part of the present invention. Briefly, a codebook is generated for each subspace dimension. Returning back to the original acoustic model comprising thousands of multidimensional gaussians, the best clusters for each subspace dimension is found for each gaussian distribution. A new compressed acoustic model is based on subspace representations.

[0079] Although the present invention has been described with reference to particular embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention. 

What is claimed is:
 1. A method for compressing multidimensional gaussian distributions with diagonal covariance matrices, the method comprising: clustering a plurality of gaussian distributions in a multiplicity of clusters for each dimension, wherein each cluster is represented by a centroid, and wherein each centroid and each gaussian distribution includes a mean and a variance, and wherein clustering includes: calculating a mean for each centroid as a weighted average of the means of the plurality of gaussian distributions forming the cluster; and calculating a variance for each centroid as function of a weighted average of the variances of the plurality of gaussian distributions forming the cluster.
 2. The method of claim 1 wherein clustering further includes assigning gaussian distributions to a cluster as a function of a non-Euclidean measure that provides an indication of closeness between a centroid and a gaussian distribution.
 3. The method of claim 2 wherein K Gaussians of dimension D and diagonal covariance matrices are provided, wherein gaussian k can be represented with a mean vector m_(k)=(m_(k)[1], m_(k)[2], . . . , m_(k)[D]) and variance vector υ_(k)=(υ_(k)[1], υ_(k)[2], . . . , υ_(k)[D]), and wherein a codebook C_(d) is provided for each dimension D, {C₁, C₂, . . . , C_(D)}, and wherein each codeword vector n in codebook C_(d) is a two-dimensional vector (μ_(n)[d], σ_(n)[d]) containing a mean and a variance, and wherein assigning includes using a measure of closeness of a form: ${S_{d}\left( {k,n} \right)} = {{2\quad \ln \quad {\sigma_{n}\lbrack d\rbrack}} + \frac{\upsilon_{k}^{2}\lbrack d\rbrack}{\sigma_{n}^{2}\lbrack d\rbrack} + {\frac{\left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}}{\sigma_{n}^{2}\lbrack d\rbrack}.}}$


4. The method of claim 3 wherein the step of calculating a variance of each centroid includes a correction factor corresponding to an error in quantizing the means.
 5. The method of claim 4 wherein the step of calculating a mean of each centroid includes using an equation of a form: ${{\mu_{n}\lbrack d\rbrack} = \frac{\sum\limits_{k \in V_{n}}{C_{k}{m_{k}\lbrack d\rbrack}}}{\sum\limits_{k \in V_{n}}C_{k}}},$

and wherein the step of calculating a variance of each centroid includes using a equation of a form: ${{\sigma_{n}^{2}\lbrack d\rbrack} = \frac{\sum\limits_{k \in V_{n}}{C_{k}\left\lbrack {\left( {\upsilon_{k}\lbrack d\rbrack} \right)^{2} + \left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}} \right\rbrack}}{\sum\limits_{k \in V_{n}}C_{k}}},$

wherein C_(k) is the “counts” of Gaussian k as seen in training, and V_(n) is the plurality of Gaussians that are in cluster n.
 6. The method of claim 5 wherein the step of assigning includes repetitively calculating mean and variance values for centroids for each cluster and assigning gaussian distributions as a function of the measure until a decrease in the sum of all measures across all clusters is below a selected threshold.
 7. The method of claim 5 wherein the step of clustering includes k-means clustering.
 8. The method of claim 7 and further comprising grouping dimensions together.
 9. The method of claim 8 wherein grouping comprises calculating a measure of closeness for all permutations of two dimensions and selecting dimensions to group to form a set of grouped dimensions as a function of increasing values of the measure of closeness in order to minimize the decrease in likelihood of in a training set.
 10. The method of claim 9 wherein grouping comprises calculating a measure of closeness for all permutations of sets of grouped dimensions and dimensions and selecting from dimensions and sets of grouped dimensions those to group as a function of increasing values of the measure of closeness in order to minimize the decrease in likelihood of a training set.
 11. A computer readable media having instructions for compressing multidimensional gaussian distributions with diagonal covariance matrices, the computer readable media comprising: a module for clustering a plurality of gaussian distributions in a multiplicity of clusters for each dimension, wherein each cluster is represented by a centroid, and wherein each centroid and each gaussian distribution includes a mean and a variance, and wherein the module calculates a mean for each centroid as function of a weighted average of the means of the plurality of gaussian distributions forming the cluster; and wherein the module calculates a variance for each centroid as function of a weighted average of the variances of the plurality of gaussian distributions forming the cluster.
 12. The computer readable media of claim 11 wherein the module assigns gaussian distributions to a cluster as a function of a non-Euclidean measure that provides an indication of closeness between a centroid and a gaussian distribution.
 13. The computer readable media of claim 12 wherein K Gaussians of dimension D and diagonal covariance matrices are provided, wherein gaussian k can be represented with a mean vector m_(k)=(m_(k)[1], m_(k)[2], . . . , m_(k)[D]) and variance vector υ_(k)=(υ_(k)[1], υ_(k)[2], . . . , υ_(k)[D]), and wherein a codebook C_(d) is provided for each dimension D, {C₁, C₂, . . . , C_(D)}, and wherein each codeword vector n in codebook C_(d) is a two-dimensional vector (μ_(n)[d], σ_(n)[d]) containing a mean and a variance, and wherein the module assigns gaussians using a measure of closeness of a form: ${S_{d}\left( {k,n} \right)} = {{2\quad \ln \quad {\sigma_{n}\lbrack d\rbrack}} + \frac{\upsilon_{k}^{2}\lbrack d\rbrack}{\sigma_{n}^{2}\lbrack d\rbrack} + {\frac{\left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}}{\sigma_{n}^{2}\lbrack d\rbrack}.}}$


14. The computer readable media of claim 13 wherein a variance of each centroid includes a correction factor corresponding to an error in quantizing the means.
 15. The computer readable media of claim 13 wherein a mean of each centroid is calculated using an equation of a form: ${{\mu_{n}\lbrack d\rbrack} = \frac{\sum\limits_{k \in V_{n}}{C_{k}{m_{k}\lbrack d\rbrack}}}{\sum\limits_{k \in V_{n}}C_{k}}},$

and wherein a variance of each centroid is calculated using a equation of a form: ${{\sigma_{n}^{2}\lbrack d\rbrack} = \frac{\sum\limits_{k \in V_{n}}{C_{k}\left\lbrack {\left( {\upsilon_{k}\lbrack d\rbrack} \right)^{2} + \left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}} \right\rbrack}}{\sum\limits_{k \in V_{n}}C_{k}}},$

wherein C_(k) is the “counts” of Gaussian k as seen in training, and V_(n) is the plurality of Gaussians that are in cluster n.
 16. The computer readable media of claim 15 wherein the module assigns gaussians by repetitively calculating mean and variance values for centroids for each cluster and assigning gaussian distributions as a function of the measure until a decrease in the sum of all measures across all clusters is below a selected threshold.
 17. The computer readable media of claim 15 wherein clustering includes k-means clustering.
 18. The computer readable media of claim 17 and wherein the module groups dimensions together.
 19. The computer readable media of claim 18 wherein the module groups dimensions together to form a set of grouped dimensions by calculating a measure of closeness for all permutations of two dimensions and selecting dimensions to group as a function of increasing values of the measure of closeness in order to minimize the decrease in likelihood of a training set.
 20. The computer readable media of claim 19 wherein the module groups dimensions and/or sets of grouped dimensions together by calculating a measure of closeness for all permutations of sets of grouped dimensions and dimensions and selecting those dimensions and sets of grouped dimensions to group as a function of increasing values of the measure of closeness in order to minimize the decrease in likelihood of a training set.
 21. A method for compressing multidimensional gaussian distributions with diagonal covariance matrices, the method comprising: clustering a plurality of gaussian distributions in a multiplicity of clusters for each dimension, wherein each cluster is represented by a centroid, and wherein each centroid and each gaussian distribution includes a mean and a variance, and wherein clustering includes: calculating a mean and a variance for each centroid to represent a plurality of gaussian distributions wherein a total decrease in likelihood of a training dataset is minimized for the representation of the plurality of gaussian distributions.
 22. The method of claim 21 wherein the step of clustering further includes assigning gaussian distributions to a cluster in a manner that the total decrease in likelihood is minimized.
 23. The method of claim 22 wherein the step of assigning includes using a metric having a mathematical measure of closeness to assign gaussian distributions.
 24. The method of claim 23 wherein the step of assigning includes minimizing the metric.
 25. The method of claim 24 wherein K Gaussians of dimension D and diagonal covariance matrices are provided, wherein gaussian k can be represented with a mean vector m_(k)=(m_(k)[1], m_(k)[2], . . . , m_(k)[D]) and variance vector υ_(k)=(υ_(k)[1], υ_(k)[2], . . . , υ_(k)[D]), and wherein a codebook C_(d) is provided for each dimension D, {C₁, C₂, . . . , C_(D)} and wherein each codeword vector n in codebook C_(d) is a two-dimensional vector (μ_(n)[d], σ_(n)[d]) containing a mean and a variance, and wherein assigning includes using the mathematical measure of closeness of a form: ${S_{d}\left( {k,n} \right)} = {{2\quad \ln \quad {\sigma_{n}\lbrack d\rbrack}} + \frac{\upsilon_{k}^{2}\lbrack d\rbrack}{\sigma_{n}^{2}\lbrack d\rbrack} + {\frac{\left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}}{\sigma_{n}^{2}\lbrack d\rbrack}.}}$


26. The method of claim 25 wherein the step of calculating a variance of each centroid includes a correction factor corresponding to an error in quantizing the means.
 27. The method of claim 26 wherein the step of calculating a mean and a variance includes: calculating a mean for each centroid as a weighted average of the means of the plurality of gaussian distributions forming the cluster; and calculating a variance for each centroid as function of a weighted average of the variances of the plurality of gaussian distributions forming the cluster.
 28. The method of claim 26 wherein the step of calculating a mean of each centroid includes using an equation of a form: ${{\mu_{n}\lbrack d\rbrack} = \frac{\sum\limits_{k \in V_{n}}{C_{k}{m_{k}\lbrack d\rbrack}}}{\sum\limits_{k \in V_{n}}C_{k}}},$

and wherein the step of calculating a variance of each centroid includes using a equation of a form: ${{\sigma_{n}^{2}\lbrack d\rbrack} = \frac{\sum\limits_{k \in V_{n}}{C_{k}\left\lbrack {\left( {\upsilon_{k}\lbrack d\rbrack} \right)^{2} + \left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}} \right\rbrack}}{\sum\limits_{k \in V_{n}}C_{k}}},$

wherein C_(k) is the “counts” of Gaussian k as seen in training, and V_(n) is the plurality of Gaussians that are in cluster n.
 29. The method of claim 28 wherein the step of assigning includes repetitively calculating mean and variance values for centroids for each cluster and assigning gaussian distributions as a function of the measure until a decrease in the sum of all measures across all clusters is below a selected threshold.
 30. The method of claim 29 and further comprising grouping dimensions together.
 31. The method of claim 30 wherein grouping comprises calculating a measure of closeness for all permutations of two dimensions and selecting dimensions to group to form a set of grouped dimensions as a function of increasing values of the measure of closeness in order to minimize the decrease in likelihood of a training set.
 32. The method of claim 31 wherein grouping comprises calculating a measure of closeness for all permutations of sets of grouped dimensions and dimensions and selecting from dimensions and sets of grouped dimensions those to group as a function of increasing values of the measure of closeness in order to minimize the decrease in likelihood of a training set.
 33. A computer readable media having instructions for compressing multidimensional gaussian distributions with diagonal covariance matrices, the computer readable media comprising: a module for clustering a plurality of gaussian distributions in a multiplicity of clusters for each dimension, wherein each cluster is represented by a centroid, and wherein each centroid and each gaussian distribution includes a mean and a variance, and wherein the module calculates a mean and a variance for each centroid to represent a plurality of gaussian distributions wherein a total decrease in likelihood of a training dataset is minimized for the representation of the plurality of gaussian distributions.
 34. The computer readable media of claim 33 wherein the module assigns gaussian distributions to a cluster in a manner that the total decrease in likelihood is minimized.
 35. The computer readable media of claim 34 wherein the module uses a metric having a mathematical measure of closeness to assign gaussian distributions.
 36. The computer readable media of claim 35 wherein the module uses assigns gaussian distributions by minimizing the metric.
 37. The computer readable media of claim 36 wherein K Gaussians of dimension D and diagonal covariance matrices are provided, wherein gaussian k can be represented with a mean vector m_(k)=(m_(k)[1], m_(k)[2], . . . , m_(k)[D]) and variance vector υ_(k)=(υ_(k)[1], υ_(k)[2], . . . , υ_(k)[D]), and wherein a codebook C_(d) is provided for each dimension D, {C₁, C₂., C_(D)}, and wherein each codeword vector n in codebook C_(d) is a two-dimensional vector (μ_(n)[d], σ_(n)[d]) containing a mean and a variance, and wherein the module assigns gaussians using a measure of closeness of a form: ${S_{d}\left( {k,n} \right)} = {{2\quad \ln \quad {\sigma_{n}\lbrack d\rbrack}} + \frac{\upsilon_{k}^{2}\lbrack d\rbrack}{\sigma_{n}^{2}\lbrack d\rbrack} + {\frac{\left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}}{\sigma_{n}^{2}\lbrack d\rbrack}.}}$


38. The computer readable media of claim 37 wherein a variance of each centroid includes a correction factor corresponding to an error in quantizing the means.
 39. The computer readable media of claim 38 wherein a mean for each centroid is calculated as a weighted average of the means of the plurality of gaussian distributions forming the cluster, a variance for each centroid is calculated as function of a weighted average of the variances of the plurality of gaussian distributions forming the cluster.
 40. The computer readable media of claim 39 wherein a mean of each centroid is calculated using an equation of a form: ${{\mu_{n}\lbrack d\rbrack} = \frac{\sum\limits_{k \in V_{n}}{C_{k}{m_{k}\lbrack d\rbrack}}}{\sum\limits_{k \in V_{n}}C_{k}}},$

and wherein a variance of each centroid is calculated using a equation of a form: ${\sigma_{n}^{2}\lbrack d\rbrack} = \frac{\sum\limits_{k \in V_{n}}{C_{k}\left\lbrack {\left( {\upsilon_{k}\lbrack d\rbrack} \right)^{2} + \left( {{m_{k}\lbrack d\rbrack} - {\mu_{n}\lbrack d\rbrack}} \right)^{2}} \right\rbrack}}{\sum\limits_{k \in V_{n}}C_{k}}$

wherein C_(k) is the “counts” of Gaussian k as seen in training, and V_(n), is the plurality of Gaussians that are in cluster n.
 41. The computer readable media of claim 40 wherein the module assigns gaussians by repetitively calculating mean and variance values for centroids for each cluster and assigning gaussian distributions as a function of the measure until a decrease in the sum of all measures across all clusters is below a selected threshold.
 42. The computer readable media of claim 41 and wherein the module groups dimensions together.
 43. The computer readable media of claim 42 wherein the module groups dimensions together to form a set of grouped dimensions by calculating a measure of closeness for all permutations of two dimensions and selecting dimensions to group as a function of increasing values of the measure of closeness in order to minimize the decrease in likelihood of a training set.
 44. The computer readable media of claim 43 wherein the module groups dimensions and/or sets of grouped dimensions together by calculating a measure of closeness for all permutations of sets of grouped dimensions and dimensions and selecting those dimensions and sets of grouped dimensions to group as a function of increasing values of the measure of closeness in order to minimize the decrease in likelihood of a training set. 